#include<iostream>
#include<fstream>
#include"../tools/bundle/bundle.h"

int main(int argc,char* argv[])
{
    if(argc < 3)
    {
        std::cout<<"argv[1]压缩包名称\n";
        std::cout<<"argv[2]解压包名称\n";
        return -1;
    }
    //使用bundle库进行样例编写思想：
    //对当前目录下的bundle.cpp 5.4M进行压缩，压缩成新的文件叫做bundle.cpp.zip
    std::string ifilename = argv[1]; // 压缩包的名称
    std::string ofilename = argv[2];
    //将bundle.cpp文件进行打开
    std::ifstream ifs(ifilename,std::ios::binary | std::ios::in);
    if(!ifs.is_open())
    {
        std::cout<<"文件打开失败\n";
        return -1;
    }
    //将文件信息读取到string内
    ifs.seekg(0,std::ios::end);
    size_t n = ifs.tellg();
    ifs.seekg(0,std::ios::beg);
    std::string str;
    str.resize(n);
    ifs.read(&str[0],n);
    //关闭文件
    ifs.close();
    std::string unpacked = bundle::unpack(str);
    //在./打开一个叫做test.txt的文件
    std::ofstream ofs(ofilename,std::ios::binary);
    if(!ofs.is_open())
    {
        std::cout<<"文件打开失败\n";
        return -1;
    }
    ofs.write(unpacked.c_str(),unpacked.size());
    ofs.close();
    return 0;
}